package com.xbongbong.paas.connection.pojo.dto;

import com.xbongbong.paas.connection.pojo.LowCodeConfigPojo;
import com.xbongbong.paas.connection.pojo.LowCodeFilePojo;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import com.xbongbong.pro.lowcodejsfile.pojo.LowCodeJsFilePojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 低代码安装
 * @author 李少杰
 * @version v1.0.0
 * @date 2022/2/14 14:52
 */
@Getter
@Setter
@ToString
public class LowCodeInstallDTO implements Serializable {

    /**
     * 操作类型：1：直接安装；2：覆盖；3：合并
     */
    private Integer operationType;
    /**
     * 安装的corpid
     */
    @NotBlank(message="公司ID不能为空")
    private String corpid;
    /**
     * 用户ID
     * 注意：使用BeanUtil.convertBean2Map方法将DTO转查询map时，userId条件需要手动置入
     */
    @NotBlank(message="用户ID不能为空")
    @Getter(onMethod_ = {@QueryIgnore})
    private String userId;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 应用Id
     */
    private Long appId;
    /**
     * 安装的表单id
     */
    @NotNull(message = "{dto.msg.formId.NotNull}")
    private Long formId;
    /**
     * saasMark
     */
    @NotNull(message = "{saas标识不能为空}")
    private Integer saasMark;
    /**
     * 安装的业务类型
     */
    @NotNull(message = "{业务类型不能为空}")
    private Integer businessType;
    /**
     * 低代码配置
     */
     private LowCodeConfigPojo lowCodeConfigPojo;
    /**
     * 低代码文件
     */
    private LowCodeJsFilePojo lowCodeFilePojo;

    public LowCodeInstallDTO() {
        this.operationType = 1;
    }
}
